package vip.george.p0066;

import java.util.Arrays;

public class P66 {
    public int[] plusOne(int[] digits) {
        int len = digits.length;
        //从最后一位开始向前遍历
        for (int i = len - 1; i >= 0; i--) {
            // 只有9加1的时候才进位（且一旦不为9，则不用再进行遍历，直接得到最终结果）
            if (digits[i] == 9) {
                digits[i] = 0;
            } else {
                digits[i] = digits[i] + 1;
                return digits;
            }
        }
        //处理可能溢出的情况（只有原始数组digits全是9时才会进入这个，这时可以设置len + 1长度的数组，首位填充1，其他位自动补0）
        digits = new int[len + 1];
        digits[0] = 1;
        return digits;
    }

    public static void main(String[] args) {
        P66 p = new P66();
        int[] digits = {9, 9, 9};
        System.out.println(Arrays.toString(p.plusOne(digits)));
    }
}


